home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-12 | 63.6 KB | 1,666 lines |
-
-
-
-
-
-
-
- Thinosi Working Group P.R.Furniss
- INTERNET DRAFT Consultant
- October 1993
-
-
- Octet sequences for upper-layer OSI
- to support basic communications applications
-
- Status of this Memo
-
- This draft document is part of the work of the IETF Thinosi Working
- Group. It is intended to submit it to the IAB standards track.
- Distribution of this memo is unlimited. Comment on this draft should
- be sent to the thinosi mailing list: thinosi@ulcc.ac.uk. Requests to
- join this list should be sent to thinosi-request@ulcc.ac.uk.
-
- This document is an Internet-Draft. Internet-Drafts are working
- documents of the Internet Engineering Task Force (IETF), its Areas,
- and its Working Groups. Note that other groups may also distribute
- working documents as Internet-Drafts.
-
- Internet-Drafts are draft documents valid for a maximum of six months.
- Internet-Drafts may be updated, replaced, or obsoleted by other
- documents at any time. It is not appropriate to use Internet-Drafts
- as reference material or to cite them other than as a "working draft"
- or "work in progress."
-
- To learn the current status of any Internet-Draft, please check the
- 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
- Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com, or
- munnari.oz.au.
-
- The filename of this document in the Internet-Draft directories is
- draft-ietf-thinosi-cookbook-01.txt.
-
- Abstract
-
- This document specifies those elements of the OSI upper-layer
- protocols (Session, Presentation and ACSE) needed to support
- applications with "basic communications requirements". These include
- OSI application protocols such as X.400 P7 and Directory Access
- Protocol, and "migrant" protocols, originally defined for use over
- other transports.
-
- The upper-layer protocol elements are specified in this document as
- the particular octet sequences that comprise an "envelope" around the
- application protocol's data. It therefore independent, as a document,
- from the OSI base standards, although an implementation based on this
- document will be able to interwork with an implementation based on the
- base standard, when both are being used to support an appropriate
- application protocol.
-
-
-
-
-
- Expires 17 April 1994 [Page 1]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- Table of Contents
-
- 1. Introduction .......................................................3
- 2. General ............................................................3
- 2.1 Subdivisions of "basic communication applications"...............3
- 2.2 Conformance and interworking.....................................5
- 2.3 Relationship to other documents..................................5
- 3. Contexts and titles ................................................6
- 3.1 The concepts of abstract and transfer syntax.....................6
- 3.2 Use of presentation context by cookbook applications.............7
- 3.3. Processing Presentation-context-definition-list.................7
- 3.4 Application context..............................................8
- 3.5 APtitles and AEqualifiers........................................8
- 4. What has to be sent and received ...................................10
- 4.1. Sequence of OSI protocol data units used........................10
- 4.2. Which OSI fields are used.......................................11
- 4.3. Encoding methods and length fields..............................12
- 4.3.1 Session items..................................................13
- 4.3.2 ASN.1/BER items (Presentation and ACSE)........................13
- 4.4. BER Encoding of values for primitive datatypes..................14
- 4.5. Unnecessary constructed encodings...............................14
- 5. Notation ...........................................................14
- 6. Octet sequences ....................................................16
- 6.1. Connection request message......................................16
- 6.2. Successful reply to connection setup............................18
- 6.3. Connection rejection............................................20
- 6.4. Data-phase TSDU.................................................20
- 6.5. Closedown - release request....................................21
- 6.6. Closedown - release response....................................22
- 6.7. Deliberate abort................................................23
- 6.8. Provider abort..................................................24
- 6.9. Abort accept....................................................24
- 7. References .........................................................24
- 8. Other notes ........................................................25
- 9. Author's Address ...................................................26
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Expires 17 April 1994 [Page 2]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- 1. Introduction
-
- The upper-layer protocols of the OSI model are large and complex,
- mostly because the protocols they describe are rich in function and
- options. However, for support of most applications, only a limited
- portion of the function is needed and the protocol elements needed can
- be expressed more simply.
-
- This memo describes the protocol elements required by the OSI upper
- layers when supporting a connection-oriented application with only
- basic communication requirements - that is to create a connection,
- optionally negotiate the data representation, send/receive data, close
- a connection and abort a connection. Optionally, data may be sent on
- the connection establishment, closing and abort messages.
-
- The protocol elements for the OSI upper layer protocols (i.e. Session,
- Presentation and Association Control Service Element (ACSE) needed to
- support such an application are a subset of the full protocols defined
- in the International Standards ([ISO8326, ISO8327, ISO8822, ISO8823,
- ISO8649, ISO8650]). Such a protocol subset can be specified in a
- profile, which references the base standards and states which parts
- are relevant. Such a profile specification cannot be understood
- without reference to the base standards.
-
- In this memo, the protocol elements needed are specified in terms of
- the octet sequences that comprise the 'envelope' around the
- application data. This memo can be regarded as an informal re-
- specification of the relevant parts of the upper-layer protocols. An
- implementation based on this memo will be able to interwork with an
- implementation based directly on the full standards when both are
- supporting a basic communication application. (The "full"
- implementation will exhibit only part of its potential behaviour,
- since the application will only invoke part).The envelope and its
- enclosing data form a Transport Service Data Unit (TSDU) that can be
- passed via the OSI Transport Service [ISO8072] (which in turn may be
- supported as specified in [RFC1006] or any class of the OSI Transport
- Protocol [ISO8073]).
-
-
- 2. General
-
- 2.1 Subdivisions of "basic communication applications"
-
- Distinctions can be made within the "basic communication
- applications", as defined above, based on how much use they make of
- the OSI upper-layer services. In particular:
-
- a) whether application data is sent on the connection
- establishment, close and abort, or only during "date phase" on
- an established connection;
-
- b) whether the application data is of only one kind (abstract
- syntax) and one format (transfer syntax) or more than one (i.e.
- how much use is made of the Presentation layer syntax
- negotiation and identification features)
-
- Expires 17 April 1994 [Page 3]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- These distinctions potentially allow further subsetting, but a large
- part of the protocol will be the same. In this memo, four groups of
- supported application are considered, based on these distinctions. All
- groups have "basic communications requirements" in requiring only
- connection, data transfer and (perhaps) orderly release of
- connection.The four groups are:
-
- Group I : applications which send data only on an established
- connection, and use a single abstract and transfer syntax.
-
- Group II : applications which send data on connection
- establishment and release and use a single abstract and transfer
- syntax.
-
- Group III applications that send data of only one kind (one
- abstract syntax) on the connection, but which have more than one
- format (transfer syntax) specified (they use the Presentation
- context negotiation facility)
-
- Group IV applications that will send data of several kinds on
- the connection (and which much therefore distinguish on each
- write which kind is being sent)
-
- Group III applications are equivalent to Group I (or possibly Group
- II) after the establishment exchange has negotiated the particular
- transfer syntax that will be used on the connection.
-
- Possible examples of the Groups are:
-
- Group I: Application protocols designed for use over transport-
- level protocols. Typically these are non-OSI protocols
- "migrated" to an OSI environment. X Window System protocol is an
- example.
-
- Group II: OSI-originated protocols with simple requirements,
- including many of the ROSE-based ones, such as Directory Access
- Protocol.
-
- Group III: Protocols that can be treated as Group I, but for
- which more than one encoding of the data is known, such as a
- standardised one and a system-specific one - all implementations
- understand the standard encoding, but Presentation layer
- negotiation allows like-implementations to use their internal
- encoding for transfer, without loss of general interworking. The
- same could apply to OSI protocols.
-
- Group IV: OSI protocols with multiple abstract syntaxes (but
- with each individual message from a single abstract syntax) that
- do not use any of the special Session functional units - X.400
- P7 is an example.
-
- Some of the OSI protocols that are not included are those that use
- more than one abstract syntax in a single message (such as FTAM or
- Transaction Processing) or use Session functional units (RTSE-based
- protocols, Virtual Terminal).
-
- Expires 17 April 1994 [Page 4]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- 2.2 Conformance and interworking
-
- The protocol elements specified in this memo correspond to the kernel
- functional units of Session, Presentation and ACSE, and the duplex
- functional unit of Session.
-
- The octet sequences given below are derived from the specifications in
- the International Standards for the protocols Session [ISO8327],
- Presentation [ISO8822] and ACSE [ISO8650]. The intention of this memo
- is to summarise those specifications, as applicable to the supported
- application groups, so that an implementation could be developed
- without direct reference to the original standards, but capable of
- interworking with implementations that had made direct reference. The
- OSI standards (especially Presentation) allow considerable flexibility
- in the encoding of the protocol data units. Accordingly, this memo
- defines particular octet sequences to be sent, and describes the
- variations that can be expected in data received from an
- implementation based directly on the OSI standards, rather than on
- this cookbook. It is intended that an implementation that sends these
- sequences and that is capable of interpreting the variations described
- will be fully able to interwork with an implementation based directly
- on the OSI standards. An implementation that is only capable of
- interpreting the octet sequences specified in this memo for
- transmission may not be able to interwork with standards-based
- implementations.
-
- The intent is to be able to interwork with conformant implementations
- in support of the relevant application (or group of applications).
- Some of the OSI standards have conformance requirements that go beyond
- that necessary for successful interworking, including detection of
- invalid protocol. Tests for conformance sometimes go beyond the strict
- conformance requirements of the standard. Consequently an
- implementation based on this memo may or may not be able to formally
- claim conformance to the International Standard. It may be able to
- legitimately claim conformance, but fail a conformance test, if the
- test is over-specified. (Efforts are being made to correct this, but
- in the meantime, the target is interworking with conformant
- implementations.)
-
- 2.3 Relationship to other documents
-
- The flexibility allowed in the Session, Presentation and ACSE
- standards is restricted in the Common Upper-Layer Requirements Part 1
- [CULR-1] ). This is a proposed International Standardised Profile
- (pdISP 11188-1) that can be assumed to be obeyed by most
- implementations. This memo applies the restrictions of CULR-1,
- especially where these concern maximum sizes of fields and the
- like.Points where advantage is taken of a CULR-1 limitation are noted.
-
- Additional parts of CULR are under development. Part 3 [CULR-3] covers
- the protocol elements needed for "basic communications applications",
- and is being developed in (informal) liaison with this memo. CULR-3 is
- presented as a normal profile, largely consisting of prescribed
- answers to the questions in the PICS (Protocol Implementation
- Conformance Statement) of the three protocols.CULR-3 does not make the
-
- Expires 17 April 1994 [Page 5]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- distinction between the four Groups.An implementation of this memo (at
- least if it supported Group IV) would be able to claim conformance to
- CULR-3, with the possible exception of any more-than-interworking
- conformance requirements inherited by CULR-3 from the base standards.
-
- An extension [XTI/mOSI] to the X/Open Transport Interface [XTI] is
- shortly to be published as a preliminary specification. This defines
- an API to the OSI upper-layers, again as appropriate to a basic
- communications application. XTI/mOSI would be usable as an interface
- to support applications in groups I, II and III, and possibly group
- IV.
-
-
- 3. Contexts and titles
-
- 3.1 The concepts of abstract and transfer syntax
-
- OSI includes the concepts of "abstract syntax" and "transfer syntax".
- These are terms for the content (abstract syntax) and format "on-the-
- line" (transfer syntax) of the protocol elements. The combination of
- an abstract syntax and transfer syntax is called a presentation
- context.
-
- Application protocols devised explictly under OSI auspices have used
- ASN.1 for the definition of the abstract syntax, and nearly all use
- the Basic Encoding Rules applied to the ASN.1 to define the transfer
- syntax. However, there is no such requirement in OSI in general or in
- OSI Presentation, and still less is there any requirement to change
- the representation of existing application protocols to ASN.1 (for
- their definition) or BER (for their transmission). It is not generally
- realised (even in OSI circles) that all communicating applications, in
- all environments, are using some form of these, although under
- different names and without the explicit identification that the OSI
- Presentation provides. OSI separates the identification of the content
- and format of the data from the addressing.
-
- Formal specifications of non-OSI application protocols (such as
- TELNET, FTP, X Windows System) generally do not use ASN.1, but will
- invariably be found to define abstract and transfer syntaxes. For a
- less formalised protocol used between similar systems, the abstract
- syntax may be defined simply in programming language structures, and
- the transfer syntax determined by how some compiler represents this in
- memory.
-
- The OSI Presentation protocol requires that "names" be assigned to the
- abstract and transfer syntaxes of the application data that is
- carried. The names are always object identifiers ("oid"): globally
- unique names assigned hierarchically. Presentation supports the
- negotiation of a transfer syntax for a particular abstract syntax -
- several can be offered and one selected.
-
- This transfer syntax negotiation facility may be especially useful for
- non-ASN.1 syntaxes where there is more than one representation
- available (perhaps differing in byte-ordering or character code). In
- such a case, on the connection establishment, all of the transfer
-
- Expires 17 April 1994 [Page 6]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- syntaxes supported by the initiatior are offered, and any one of these
- accepted by the responder, at its own choice. If the two systems share
- some "native" format they can negotiate that, avoiding transformation
- into and out of a more general format that is used for interworking
- with unlike systems. The same applies to an ASN.1-defined abstract
- syntax, but in practice non-BER encodings of ASN.1 are rare.
-
- 3.2 Use of presentation context by cookbook applications
-
- An application protocol not originally specified with OSI Presentation
- in mind (a "migrant" protocol) will not normally need to identify the
- abstract and transfer syntaxes being used - they are known by some
- other means (effectively inferred from the addressing). A generic
- (anonymous, if you like) name for both syntaxes can be used and [CULR-
- 3] defines object identifiers for "anonymous" abstract and transfer
- syntax names (currently called "default", but this is expected to
- change).
-
- In some cases object identifier names will be assigned for the
- syntaxes of a migrant application protocol. If these exist, they
- should be used. However, since the processing required will be the
- same, it will be legitimate to offer both the generic and specific
- names, with the responder accepting the specific (if it knew it) and
- the generic if the specific were not known - this will provide a
- migration option if names are assigned to the syntaxes after
- implementations are deployed using the generic names.
-
- For abstract syntaxes defined in ASN.1 object identifier names will
- have been assigned to the abstract syntax with the specification. This
- name MUST be used to identify the abstract syntax. The transfer syntax
- will most often be the Basic Encoding Rules (BER) object id, but
- alternatives (e.g. Packed Encoding Rules) are possible.
-
- For group III and group IV applications, specific object identifier
- names must be used for all the abstract and transfer syntaxes. If
- these names are not assigned with the specification (e.g. if the
- specification not in ASN.1) they can be assigned by whoever needs them
- - ideally the "owner" of the syntax specification.
-
- 3.3. Processing Presentation-context-definition-list
-
- In Presentation context negotiation on connection establishment the
- initiator sends a list (the presentation context definition list) of
- the abstract syntaxes it intends to use, each with a list of transfer
- syntaxes. Each presentation context also has an integer identifier. To
- build the reply, a responder has to examine this list and work out
- which of the offered presentation contexts will be accepted and which
- (single) transfer syntax for each. The responder sends back the reply
- field, the Presentation-context-definition-result-list, in the accept
- message. The result list contains the same number of result items as
- the definition-list proposed presentation-contexts. They are matched
- by position, not by the identifiers (which are not present in the
- result-list). An acceptance also includes the transfer syntax accepted
- (as there can be several offered). This can be copied from the
- definition list.
-
- Expires 17 April 1994 [Page 7]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- For the group I, group II and group III cases, only the ACSE and one
- application-data P-context will be used and all other contexts
- rejected. For the group IV case, several presentation contexts will be
- accepted.
-
- However, even for group I applications there may be synonyms for an
- application-data Presentation-context. Unknown synonyms are rejected.
- The reply shown in 6.2 includes a rejection (It can therefore not be
- the reply to the connection request shown in 6.1, since that has only
- two items in the definition list.)
-
- In all cases, the connection responder must identify and keep the
- presentation context identifiiers (called pcid's here) for all the
- accepted presentation contexts. These are integers (odd integers, in
- this case). CULR-1 limits them to no greater than 32767, but they will
- usually be <= 255 (so taking up one octet).
-
- A presentation context is sometimes used (i.e. data is sent using it)
- before the negotiation is complete. As will be seen in section 6, in
- these cases, the transfer syntax name sometimes appears with the
- integer identifier.
-
- 3.4 Application context
-
- The Association Control Service Element also exchanges the name
- (another Object Identifier) of the application context, which
- identifies what the communication is all about, again independently of
- the naming and addressing. As for the syntaxes, although some name
- must be present in the protocol, a generic name can be used for
- applications that do not have a specific name assigned. (This will
- almost certainly be a group I application - if a specific name is
- assigned, it MUST be used.) The only negotiation allowed is that the
- reply may be different from that sent by the initiator. CULR-3
- provides a generic application context name (i.e. assigns an object
- identifier).
-
- 3.5 APtitles and AEqualifiers
-
- In addition to the addressing constructs (transport address and
- possibly session and presentation selectors), the communicating
- application entities have names - Application-Entity titles (AEtitle).
- These are carried by ACSE as two fields -the Application-process
- titles (APtitle) and the Application-entity qualifier (AEqualifier).
- The AEtitle is compound, and the APtitle consists of all but the last
- element, which is the AEqualifier. (This explanation can be run
- backwards). There are two non-equivalent forms. AP-titles and AE-
- titles can be Directory Name or an Object Identifier. AE-qualifiers
- can be Relative Distinguished Name (RDN) or an integer - the forms
- must match, since the AE-qualifier is the last component of the AP-
- title. In practice, the Directory form is likely to be the only one
- seen for a while.
-
- Use of the these names is rather variable. This cookbook proposes that
- implementations should be able to handle any value for the partner's
- names, and set (as initiator) its own names. This is primarily to
-
- Expires 17 April 1994 [Page 8]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- facilitate OSI:non-OSI relaying (e.g. X/osi:X/tcp), allowing the names
- of the end-system to be carried to the relay, where they can be
- converted into hostnames, and the lower-layer address determined. OSI
- assumes that name-to-address lookup is possible (via the Directory or
- other means), but does not assume address-to-name will work. Thus the
- calling AE-title is needed if the responder is to know who the
- initiator is. However, most protocols work perfectly well without
- these names being included.
-
- As for their encoding, a RDN will almost always be a single attribute
- value assertion, with the attribute defined either by the Directory
- standard [ISO9594 = X.500], or in [Internet/Cosine Schema][RFC1274].
- Using the notation defined below, the encoding of an RDN using a
- Directory-defined standard attribute is:
-
- 31 80 {1 - RDN, [SET OF]
- 30 80 {2 - AttributeValueAssertion, [SEQUENCE]
- 06 03 5504yy -- OID identifying an attribute named in
- -- the Directory standard
- -- which one is determined by yy
- 13 La xxxxxx -- [Printable string]
- -- could be T61 string, with tag 14
- 00 00 }2 - end of AVA
- 00 00 }1 - end of RDN
-
- The most likely attributes for an RDN have the following hex values
- for yy
-
- CommonName 03
- Country 06
- Locality 07
- State/Province 08
- Organisation 0A
- OrganisationUnit 0B
-
- For non-Directory attributes, the object id name must be substituted
- (thus changing the immediately preceeding length)
-
- If there are multiple attribute value assertions in the RDN, the group
- between {2 and 2} is repeated (with different attributes). Order is
- not significant.
-
- The encoding of a [Directory] Name for the AP-titles is the RDNs
- (high-order first) within
-
- 30 80 {1 - [SEQUENCE] Name
- -- put the RDN encodings here
- 00 00 }1
-
- An Object Identifier AP-title is encoded as a primitive (see below),
- with the "universal" tag for an object identifier, which is 6. The
- integer AE-qualifer uses the universal tag for an integer, which is 2.
-
-
-
-
- Expires 17 April 1994 [Page 9]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- 4. What has to be sent and received
-
- 4.1. Sequence of OSI protocol data units used
-
- OSI defines its facilities in terms of services but these are abstract
- constructs (they do not have to correspond to procedure calls) - the
- significant thing is the transmission of the resulting protocol data
- unit (PDU). The PDU at each layer carries (as user data) the PDU of
- the layer above. The different layers follow different conventions for
- naming the pdus. This section gives an overview of the sequence of
- PDUs exchanged - the details of these are given in section 6.
-
- The requirements of the application are to create a
- connection(strictly an association for the application-layer in OSI,
- but called a connection here), to send and receive data and to close
- the connection. The PDUs used are thus:
-
- To create connection :
-
- First create transport-level connection
-
- Initiator sends the message defined in 6.1, which is Session
- CONNECT carrying Presentation CONNECT request [CP] carrying
- ACSE A-ASSOCIATE request [AARQ] optionally carrying
- application data.
-
- Responder replies with the message defined in 6.2, which is
- Session ACCEPT carrying Presentation CONNECT response [CPA]
- carrying ACSE response [AARE] optionally carrying application
- data.
-
- - If the responder rejects the attempt, the reply will be
- Session REJECT. This is defined in 6.3, where the REJECT
- carries no user data. A received REJECT may carry
- Presentation, ACSE and application data, although 6.3 shows
- only how to reject at Session level..
-
- To send/receive data on an connection
-
- send the message defined in 6.4, which is an empty Session
- GIVE-TOKEN followed by Session S-DATA carrying Presentation P-
- DATA [TD] containing the application data (The GIVE-TOKEN is
- just two octets required by Session for some backwards
- compatibility)
-
- To close connection gracefully
-
- One side sends the message defined in 6.5, which is Session
- FINISH carrying P-RELEASE request carrying A-RELEASE request
- [RLRQ] optionally carrying application data (This side may now
- receive, but not send data)
-
- The other side replies with the message defined in 6.6, which
- is Session DISCONNECT carrying P-RELEASE response carrying A-
- RELEASE response [RLRE] optionally carrying application data
-
- Expires 17 April 1994 [Page 10]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- First side disconnects transport connection on receiving the
- reply
-
- To close connection abruptly but also send application data
-
- Send the message defined in 6.7, which is Session ABORT
- carrying Presentation U-ABORT [ARU] carry ACSE U-ABORT [ABRT]
- carrying application data (delivery not guaranteed)
-
- On receiving Session ABORT, disconnect transport
-
- To close connection abruptly
-
- - Either send the message defined in 6.8, which is Session ABORT
- carrying nothing;
-
- Or, just disconnect at transport level
-
- A group I application is assumed (by definition) not to send data on
- the establishment and release exchanges, a group II application will.
-
- It would be possible to use the abort-with-data facility with a group
- I to send a (possibly non-standardised) error message for diagnostic
- purposes.
-
- A special rule is used if a release collision occurs (i.e. FINISH+P-
- RELEASE+RLRQ received after sending the same): the side that initiated
- the original upper-layer connection waits and the other side replies
- with the DISCONNECT etc.
-
-
-
- 4.2. Which OSI fields are used
-
- There are a number of fields (parameters) in the pdus involved. These
- can be categorised by what is needed to support applications (of a
- particular Group) in general - a field may be "useful", "send-only",
- "fixed", "fixed with default", "internal" or "not important". Even
- those that are not important may be received from another
- implementation, but since the application has no use for them, they
- can be ignored. If an implementation is intended to support only a
- particular application, it may be able to downgrade the "useful" to
- "not important"
-
- The text below describes the processing that is required for each
- category and which fields are in each category.
-
- "Useful" - when sending, the implementation SHOULD be able to set any
- (legal) value of these fields (via the upper interface from the
- application or via some configuration or lookup mechanism) and SHOULD
- pass received values for the Calling values to the application (for
- specific applications, these fields may be either required or
- unnecessary.)
-
- AARQ:
-
- Expires 17 April 1994 [Page 11]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- Called application-process title
- Called application-entity qualifier
- Calling application-process title
- Calling application-entity qualifier
-
- "Send-only" - the implementation MUST be able to set any value of
- these, but can ignore any received value. Both are octet strings.
-
- Presentation selector (up to 4 octets, limited by CULR-1)
- Session selector (up to 16 octets, limited by base standard)
-
-
- "Fixed" (constant for all applications)
-
- abstract and transfer syntax identifiers for presentation
- context for ACSE
- Version numbers - 2 for session, 1 for Presentation and ACSE
-
-
- "Fixed with default" - the value is specific to the application. For
- non-ASN.1 abstract syntaxes (group I or group II only) applications,
- the anonymous values assigned by the OIW minimal OSI profile [CULR-3]
- can be used. The CULR-3 default application context can be used where
- a proper context name is neither available nor needed.
-
- Application context
- CULR-3 default is {1 0 11188 3 3}
- Abstract syntax identifier for application data
- CULR-3 anonymous name is {1 0 11188 3 1 1}
- Transfer syntax identifier for application data
- CULR-3 anonymous name is {1 0 11188 3 2 1}
-
-
- "Internal" - an arbitrary value can be sent; a received value must be
- stored for use in sending.
-
- Presentation context identifiers for ACSE and the application
- data (always odd integers)
-
- "Not important" - any legal received value for the other fields MUST
- be received (i.e. the pdu is parsed successfully), but can then be
- ignored. There is no requirement (in this cookbook) to check the
- existence, value or internal format of these fields.
-
- All other fields (which includes a large number of session
- fields)
-
- 4.3. Encoding methods and length fields
-
- Both Session and ASN.1/BER [ISO8824, ISO8825] use a type-length-value
- structure for their encodings, but different ones. Presentation
- protocol and ACSE protocol use the ASN.1/BER encoding and consequently
- a Presentation PDU containing an ACSE PDU can be constructed or parsed
- as if it were a single structure.
-
-
- Expires 17 April 1994 [Page 12]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- All the protocols contain pdu fields with a compound structure. If one
- of these is being ignored it may be necessary (for BER, not session)
- to determine the lengths of its components to find the length of the
- ignored field.
-
- Many of the lengths in the specification below will vary, dependent on
- the values of the fields.
-
- 4.3.1 Session items
-
- The type field of a session item is always a single octet.
-
- For session items, given a particular length, there is no flexibility:
-
- If the length is less than 255, represent as one octet
-
- If the length is greater, represent as three octets, first is
- 0xFF, next two are the length, high-order octet first.
-
- (Some "real" implementations are known to use the second encoding in
- all cases. This is wrong, but should only concern conformance
- testers.)
-
- 4.3.2 ASN.1/BER items (Presentation and ACSE)
-
- The type field for ASN.1-BER is the tag. Although it is possible for
- large tags (>30) to be multi-octet, there are no large tags in the
- protocols involved in this memo. Bit 6 (0x20) of the tag octet is 1 if
- the item is constructed (i.e. the value is itself one or more ASN.1
- BER items) or 0 if it is primitive.
-
- There is considerable flexibility, at senders option, in how lengths
- are represented in BER. There are three forms: short, long and
- indefinite.
-
- Short (usable only if the length is less than 127) : one octet
-
- Long (usable for *any* length) : first octet has the top bit
- set, the rest is a count of how many octets are holding the
- length value; that many subsequent octets hold the length. A
- long length may use more than the minimum number of octets (so
- 0x8400000001 is a valid representation of length 1)
-
- Indefinite (usable only for the length of a compound field) :
- the single octet is 0x80, then one or more items (their tag-
- length-values) and finally two octets of 0x00 (equivalent to tag
- and length of zero).
-
- To be able to interwork generally, an implementation must be able to
- handle any of these forms when receiving.
-
- The encodings specified in the octet sequences below use indefinite
- length for all constructed items with a few exceptions. This slightly
- increases the number of octets sent, but means that the length of a
- varying field (e.g. user data, or a varying object identifier) affects
-
- Expires 17 April 1994 [Page 13]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- only the length of the item itself, and not the enclosing lengths. It
- is thus possible to use the octet sequences as templates interspersed
- by the varying fields.
-
- It is important to note that this choice of indefinite (which is
- equivalent to the "Canonical Encoding Rules" variant of BER) applies
- only to the Presentation and ACSE protocols themselves. It does not
- apply to ASN.1/BER encoded application data. The processing required
- of application data may suggest alternative "best" options.
-
- 4.4. BER Encoding of values for primitive datatypes
-
- The following ASN.1 primitive datatypes are used in the thinosi
- stack..
-
- Integers are encoded in twos-complement, high-order first. Unlike
- lengths, they must be encoded in the minimum number of octets (no
- leading 00 padding).
-
- Object Identifiers have a rather peculiar, but compressed encoding:
-
- Combine the first two integers of the OID into one element by
- multiplying the first (always 0, 1 or 2) by 40, and add the
- second.
-
- Each element (that one, and each subsequent integer in the OID
- taken on its own), is a taken as a binary number and divided
- into 7-bit "bytes". This is apportioned into bits 1-7 of the
- minimum number of octets. Bit 8 is one for all octets of the
- sequence except the last. (This means that elements of less than
- 127 are single octet integers.)
-
- Printable Strings - as if in ISO 646 (ASCII)
-
- OCTET STRING - just put the octets there
-
- 4.5. Unnecessary constructed encodings
-
- BER allows the sender to break some items (such as OCTET STRINGS,
- character strings) into several pieces (i.e. as constructed encoding)
- or send them as primitive. CULR-1 requires that this is only done to
- one level. The pieces of both OCTET STRING and character string are
- tagged as if they were OCTET STRING - they have the tag 04. This memo
- does not include any of these optional constructions, but they may be
- received in interworking.
-
-
- 5. Notation
-
- The constructs are shown in their tag - length - value form. All
- numbers are in hexadecimal. Comments are preceded by a '-' character.
- Multiple '-' mean the comment is more than just information.
-
- The tag column contains one of:
-
-
- Expires 17 April 1994 [Page 14]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- single fixed octets.
-
- * in the tag field indicates one or more pdu fields (possibly
- constructed) that may be received but are not sent. If received
- they can be ignored.
-
- ! indicates the tag is defined elsewhere.
-
- . is a place holder for the column.
-
- ? preceding the tag value indicates that the field is not always
- present - the comment will explain.
-
- The length column contains one of
-
- explicit value
-
- Ls - a length according to session rules which depends on the
- total size of the value (usually constructed)
-
- La - a length according to BER rules
-
- . is a placeholder
-
- yy is exactly one octet (i.e. one hex digit per y) holding part
- of the length
-
- The value column contains one of
-
- the hex value
-
- xxxxxx - value of varying length (sometimes constructed)
-
- {n - (n = number) the start of a constructed value
-
- n - (n=number) the end of the constructed value with the
- corresponding number. (The number is sometimes omitted on the
- innermost nest of construction)
-
- yy - as part of a value - a variable value, each y represents
- one hex digit
-
- ? a value, possibly constructed that may be received but is not
- sent. It may be ignored if received
-
- Note that all presentation lengths may be received in one of the
- alternative forms. All constructed lengths are shown in indefinite
- form. If a received length is definite, the corresponding end item
- (which will be shown here as 00 00 }n) will become . . }n.
-
- In the comments, the notation {n} refers to the constructed item
- bracketed by the {n, }n fields.
-
-
-
-
- Expires 17 April 1994 [Page 15]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- 6. Octet sequences
-
- 6.1. Connection request message
-
- - CONNECT SPDU
- 0D Ls {1 - "SI" value for CONNECT = 13
- * Ls ? - Connection Identifier
- 05 06 {2 - Connect/Accept Item
- 13 01 00 - protocol options (probably mandatory)
- * Ls ?
- 16 01 02 -- version number (bottom bit = v1, next bit =v2.
- -- may get offers of either or both
- * Ls ?
- . . }2 - End Connect/Accept Item
- 14 02 0002 - Session User Requirements (functional units)
- - Id (20), length (always 2), duplex fu only.
- -- On receipt, other bits may be set
- -- check that the 2 bit is set
- * Ls ? - we do not send any Calling Session Selector
- ?34 Ls xxxx -- Called Session Selector (i.e. the other end's)
- -- up to 16 octets - you must set what the other side
- -- demands. - May be anything characters, binary etc.
- - {3} disappeared in editing
- C1 Ls {4 -- User Data, Identifier=193. if length is > 512,
- -- then identifier is 194 (hex C2) instead
- - CP - P-CONNECT-RI PPDU. Everything below is in ASN.1 BER
- 31 80 {5 - [SET]
- --- Mode-selector (the {6} group) could possibly
- --- come after everything else {7}
- --- This will probably only be done by
- --- evil-minded conformance testers
- A0 80 {6 - Mode-selector [0] IMPLICIT SET
- 80 01 01 - [0] IMPLICIT INTEGER {normalmode(1)}
- 00 00 }6
- A2 La {7 - [2] unnamed IMPLICIT SEQUENCE
- * La ?
- ?82 La xxxx - [2] Called-presentation-selector
- - CULR says maximum length is 4
- -- must be what the other side wants
- A4 80 {8 - [4] Presentation-context-definition-list
- --- items (the outer SEQUENCEs) within the {8} list may
- --- be in any order.
- 30 80 {9 - [SEQUENCE]
- 02 01 01 -- Defines pcid for ACSE; received value will be
- -- a one or two octet odd integer
- 06 04 52010001 - [OID] for ACSE abstract syntax
- 30 80 { - [SEQUENCE]
- 06 02 5101 - [OID] Transfer syntax name is BER
- 00 00 } - end t-s list
- 00 00 }9 - end acse pctx defn
- 30 80 {10 - [SEQUENCE]
- 02 01 03 -- [INTEGER] Defines pcid for application data;
- -- received value will be a one or two octet odd
- -- integer
- 06 La xxxxxx - [OID] object identifier name of application abstract
-
- Expires 17 April 1994 [Page 16]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- - syntax (if CULR-3 default is used, this line is
- - 06 06 28CC64030101)
- 30 80 {11
- 06 La xxxxxx - [OID] t-s name for application data
- - (if CULR-3 default is used, this line is
- - 06 06 28CC64030201)
- -- will be several of these if multiple t-s offered
- -- (application is Group III)
- -- all will have the same tag 06
- 00 00 }11 - end transfer syntax list for application p-ctx
- 00 00 }10 - end application pctx definition
- -- if multiple presentation contexts are offered, (Group
- -- IV), the {10} SEQUENCE will repeat appropriately
- -- if multiple contexts are to be accepted, all the pcid's
- -- must be remembered
- 00 00 }8 - end of p-ctx-def-list
- * La ?
- 61 80 {12 - [APPLICATION 1] User-data - Fully-encoded
- 30 80 {13 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER], value is acse pcid
- A0 80 {14 - [0] Single-ASN1
- - ACSE A-ASSOCIATE request APDU - AARQ
- 60 80 {15 - [APPLICATION 0] - AARQ
- * La ? - protocol version defaults to 1 (only one defined)
- A1 80 { - [1] Application-context
- 06 La xxxxxx -- object identifier name of application context
- - (if CULR-3 default is used, this line is
- - 06 05 28CC640303)
- 00 00 }
- -- Called application process title {16} and application
- -- entity qualifier may or may not be needed (see 3.4)
- ?A2 80 {16 - [2] Called Application-Process title
- ?! La xxxxxx -- see 3.5 - either a Directory Name or an oid
- ?00 00 }16 - end Called APtitle
- ?A3 80 {17 - [3] Called Application-Entity Qualifier
- ?! La xxxxxx -- see 3.5
- ?00 00 }17
- * La ?
- Calling AP-title and AE-qualifier may or may not be needed.
- ?A6 80 {18 - [6] Calling Application-Process title
- ?! La xxxxxx -- see 3.5
- ?00 00 }18
- ?A7 80 {19 - [7] Calling Application-Entity Qualifier
- ?! La xxxxxx -- see 3.5
- ?00 00 }19
- * La ?
- -- the user information field may or may not be required
- -- (not required for Group I)
- ?BE 80 {20 - [30] IMPLICIT SEQUENCE
- ?08 80 {21 - [EXTERNAL]
- ??06 La xxxxxx -- [OID] This is the oid identifying the transfer
- -- syntax used for the user data.
- -- It is (almost certainly) required even if only
- -- one transfer syntax was proposed.
- ?02 01 03 - [INTEGER] this is the pcid for the application data
-
- Expires 17 April 1994 [Page 17]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- ?A0 La xxxxxx -- [0] single-ASN.1-type - the application data
- -- (see paragraph at end of this section below}
- ?00 00 }21 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }20 - end of user information field
- 00 00 }15 - end of AARQ
- 00 00 }14 - end of single-ASN-type
- 00 00 }13 - end of PDV-list
- 00 00 }12 - end of Presentation User-data
- 00 00 }7 - end of third element of CP-type SET
- 00 00 }5 - end of CP-type
- . . }4 - end of session user data
- . . }1 - end of CONNECT SPDU
-
- The application data carried in the EXTERNAL is shown (as A0 La xxxx)
- assuming it is a single-ASN.1 type, which it often will be for group
- II (since these tend to be OSI applications). The xxxx will be the BER
- encoding of the application pdu (probably something like Z-BIND or Y-
- INITIALIZE). The length may be indefinite.
-
- If the application data is not a single ASN.1 type, but is an octet-
- aligned value, the A0 La xxxx is replaced by 81 La xxxx, where xxxx is
- the value. In this case the length must be definite (unless an
- "unecessary" constructed encoding is used.)
-
- Identical considerations apply to the other EXTERNALs carried in the
- ACSE pdus.
-
- 6.2. Successful reply to connection setup
-
- If the connection attempt is succesful, the following is sent to the
- initiator on a T-DATA.
-
- This accept contains an item {9} in the presentation-context-result-
- list which is the rejection of some presentation context that was
- offered. This is included to show such a rejection. It is NOT included
- if this is the reply to the connect in 6.1.
-
-
- 0E Ls {1 - ACCEPT SPDU
- * Ls ?
- 05 06 {2 - Connect/Accept Item
- 13 01 01 - Protocol Options
- * Ls ?
- 16 01 02 - version number (this shows version 2 only)
- -- if version 2 was not offered, omit all of {2}
- * Ls ?
- . . }2 - End Connect/Accept Item
- 14 02 0002 - Session User Requirements (functional units)
- - duplex fu only (kernel is automatic)
- * Ls ?
- C1 Ls {3 -- User Data.( tag is C2 if length > 512 )
- - CPA - P-CONNECT response
- 31 80 {4 - [SET]
-
- Expires 17 April 1994 [Page 18]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- -- again, Mode-selector could come at the end
- A0 80 { - Mode-selector [0], length=3
- 80 01 01 - normal mode - [0], length=1, value=1
- A2 80 {5 - [2] SEQUENCE (unnamed)
- * La ?
- A5 80 {6 - [5] P-context-definition-result-list
- -- following result items are in the order corresponding
- -- to the pctx-definition-list in the connect
- -- this example assumes that was ACSE, user, rubbish
- -- with rubbish rejected
- 30 80 {7 - [SEQUENCE] result item for acse
- 80 01 00 -- [0] result, value 0 is acceptance
- 81 02 5101 - [1] accepted transfer syntax name = BER
- - note that this has an implicit tag, not 06
- 00 00 }7 - end result item for acse p-ctx
-
- 30 80 {8 - [SEQUENCE] result item for application-data pctx
- 80 01 00 - [0] value 0 is acceptance
- 81 La xxxxxx - [1] oid for transfer syntax, as on defintion list
- -- if there were several (groupIII) , the one you
- -- liked most
- 00 00 }8 - end result item for app-data p-ctx
- -- next SEQUENCE is a rejection of a third pctx
- 30 80 {9 - [SEQUENCE] result item for a rejected pctx
- 80 01 02 -- [0] result, value 2 is provider rejection
- 82 01 00 - [2] reason, value 0 is reason-not-specified
- -- there are other reasons, but let's keep it simple
- 00 00 }9 - end result item for rejected pctx
- 00 00 }6 - end p-ctx-def-result-list
- * La ?
- 61 80 {10 - [APPLICATION 1] User-data, Fully-encoded
-
- 30 80 {11 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER] value is pcid for ACSE, as stored from
- -- the pctx-definition-list on the P-CONNECT request
- A0 80 {12 - [0] single-ASN1-type
- - A-ASSOCIATE response APDU - AARE
- 61 80 {13 - [APPLICATION 1] identifies AARE
- * La ?
- A1 80 {14 - [1] Application-context
- 06 La xxxxxx - [OID] name of application context
- - usually the same as on AARQ, can differ
- 00 00 }14
- A2 03 {15 - [2] result
- 02 01 00 - [INTEGER] value 0 means accepted
- 00 00 }15
- A3 80 {16 - [3] result-source-diagnostic
- - (curiously, a non-optional field)
- A1 80 {17 - [1] acse-service-user
- 02 01 00 - [INTEGER] value 0 = null ! (why no implicit tag)
- 00 00 }17 - end acse-service-user
- 00 00 }16 - end result source diagnostic
- * La ?
- -- the user information field may or may not be required
- - (not used for Group I)
-
- Expires 17 April 1994 [Page 19]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- ?BE 80 {20 - [30] IMPLICIT SEQUENCE
- ?08 80 {21 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxx -- [0] single-ASN1-type (see note at end of 6.1)
- ?00 00 }21 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }20 - end of user information field
- 00 00 }13 - end AARE
- 00 00 }12 - end single-asn1-type
- 00 00 }11 - end PDV-list
- 00 00 }10 - end Presn user-data
- 00 00 }5 - end [2] implicit sequence in cpa
- 00 00 }4 - end CPA-type set
- . . }3 - end session userdata
- . . }1 - end ACCEPT SPDU
-
-
- 6.3. Connection rejection
-
- Refusal is at session-level, but by session user, with no reason
- given. This is a compromise avoiding making unfounded accusations of
- (session) protocol misbehaviour. If the implementation finds it does
- not like the received message, it is not essential to attempt to
- communicate with the partner why, though this may be helpful if the
- reason is correctly identified. (In most cases, a wise implementor
- will make sure an error message goes somewhere or other).
-
-
- 0C 03 {1 - REFUSE SPDU
- * Ls ?
- 32 01 00 - rejected by SS-user, no reason
- . . }1
-
-
- The far-end may send interesting things explaining why you are not
- getting interworking. If this is a session reason, the reason code
- will one octet between 81 and 86. If the rejection is higher than
- session, this will be carried on S-REFUSE (so first octet is still 0C)
- and the higher pdu will appear as part of the reason code, which will
- start with 02. (The only remaining code is 01 = user congestion).
-
- 6.4. Data-phase TSDU
-
- This is the core of the skinny stack. The lengths shown use a
- particular set of choices for indefinite and definite lengths that
- means that the application data length only affects one field. Making
- the two earlier indefinite lengths definite would require more
- calculation - adding 4 octets after the application data is assumed to
- be quicker. This header is also designed to be 20 octets long, thus
- maintaining 4-byte alignment between transport and application
- buffers. Implementations are recommended to use this encoding. It is
- possible to rapidly match incoming data against it - if there is no
-
-
- Expires 17 April 1994 [Page 20]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- mismatch until the length field, the location of the beginning of the
- data can be determined without further analysis.
-
-
-
- SPDUs
- 01 00 . - S-GIVE-TOKEN - required by basic concatenation
- - but no parameters
- 01 00 . - S-DATA - no parameters - what follows is User
- - Information, not User Data, so is not included in the
- - SPDU length fields
- - P-DATA PPDU - TD (why TD ? Typed-data id TTD !)
- 61 80 {1 - User-data [APPLICATION 1]
- 30 80 {2 - [SEQUENCE] PDV-list
- 02 01 03 - [INTEGER] pcid for application data, P-CONNECT PPDU
- - remembered by both sides
- 81 83yyyyyy xxxxxx -- [1] octet-aligned presentation data value(s)
- -- length of length (3 octets) then three octets yyyyyy
- -- for the length of the user data xxxxxx
- 00 00 }2 - End-of-contents for end of PDV-list
- 00 00 }1 - End-of-contents for end of Presentation User-data
-
-
- If the application data is in ASN.1, and a single ASN.1 value is being
- sent on the TSDU, the same header can be used except for the tag on
- the presentation data values, which becomes A0 (= [0], constructed).
-
- If there are multiple data values to be sent, this header can be
- expanded in several ways:
-
- a) if there are several ASN.1 values from the same presentation
- context, they can be concatenated and treated as an octet-
- aligned value (using the header as shown above, with tag 81 (or
- A1 - I think its primitive) or each ASN.1 value can be an item
- (tagged A0), one after the other
-
- b) if the data values are from different presentation contexts
- (group IV), each is in its own {2} group within the {1}.
-
- On receipt, for the simple octet-aligned case, the data value may
- itself have a constructed encoding - this will make the tag A1, and it
- will contain elements each tagged 04 (OCTET STRING). According to
- CULR-1, these elements are primitive (otherwise they would be 24 of
- course).
-
- 6.5. Closedown - release request
-
- When all is done, and you want to close down gracefully, send this on
- T-DATA.
-
- - FINISH SPDU
- 09 10 {1 - 9 identifies FINISH
- * Ls ? - No Transport Disconnect item
- - default is release Transport-connection
- C1 0E {2 - User data (code 193)
-
- Expires 17 April 1994 [Page 21]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- - P-RELEASE req/ind PPDU (has no name)
- 61 80 {3 - [APPLICATION 1], user data, fully-encoded
- 30 80 {4 - [SEQUENCE] PDV-list
- 02 01 01 -- pcid for ACSE, remembered from setup
- A0 80 {5 - [0] single asn.1-type
- - A-RELEASE request APDU - RLRQ
- 62 80 {6 - [APPLICATION 2] identifies RLRQ
- 80 01 00 - [0] reason, value 0 means normal
- * La ?
- -- the user information field may or may not be required
- - ( not required for Group I)
- ?BE 80 {7 - [30] IMPLICIT SEQUENCE
- ?08 80 {8 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
- ?00 00 }8 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }7 - end of user information field
- 00 00 }6 - end of RLRQ
- 00 00 }5 - end of single asn.1-type
- 00 00 }4 - end of PDV-list
- 00 00 }3 - end of Presentation User-data
- . . }2 - end of session user data
- . . }1 - end of FINISH SPDU
-
-
-
- 6.6. Closedown - release response
-
- On receiving a FINISH, you send this to tell the other end it is all
- over
-
- - Session DISCONNECT SPDU
- 0A 10 {1 - SI=10, DISCONNECT
- C1 0E {2 - User data (tag = C2 if length >512)
- - P-RELEASE rsp PPDU
- 61 80 {3 - [APPLICATION 1], user data, fully-encoded
- 30 80 {4 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER] pcid for ACSE, remembered from setup
- A0 80 {5 - [0] single asn.1-type
- - A-RELEASE response APDU - RLRE
- 63 80 {6 - [APPLICATION 3] identifies RLRE
- 80 01 00 - [0] reason, value 0 means normal
- * La ?
- -- the user information field may or may not be required
- - (not required for Group I)
- ?BE 80 {7 - [30] IMPLICIT SEQUENCE
- ?08 80 {8 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
-
- Expires 17 April 1994 [Page 22]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- ?00 00 }8 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }7 - end of user information field
- 00 00 }6 - end of RLRE
- 00 00 }5 - end of single asn.1-type
- 00 00 }4 - end of PDV-list
- 00 00 }3 - end of Presentation userdata
- . . }2 - end of session userdata
- . . }1 - end of DISCONNECT SPDU
-
- 6.7. Deliberate abort
-
- It is not clear whether this is any use - just clearing the Transport
- connection will be more effective. It goes on T-DATA, but asks for the
- far-side to close the T-connection.
-
- - Session ABORT SPDU
- 19 15 {1 - SI of 25 is ABORT
- 11 01 03 - Transport Disconnect PV, code 17
- -- value = '...00011'b means please
- -- release T-conn, user abort
- * Ls ?
- C1 11 {2 - Session User Data
- - P-U-ABORT PPDU - ARU
- A0 80 {3 - [0] implicit sequence for normal mode
- A0 80 {4 - [0] presentation-context-identifier-list
- 30 80 {5 - [SEQUENCE]
- 02 01 01 - [INTEGER]pcid for ACSE
- 06 02 5101 - [OID] for acse transfer syntax = BER
- 00 00 }5
- -- there will be one {6} group for each application
- -- presentation context that is used in this message
- -- if there is no user data, the {6} group can be
- -- omitted
- 30 80 {6
- 02 01 03 - [INTEGER] pcid for application data
- 06 La xxxxxx - [OID] transfer syntax for application data
- 00 00 }6
- 00 00 }4 - end of presentation-context-identifier-list
- 61 80 {7 - [APPLICATION 1], user data, fully-encoded
- 30 80 {8 - [SEQUENCE] PDV-list
- 02 01 01 - [INTEGER] pcid for ACSE as on CP PPDU
- A0 05 {9 - [0] single asn.1-type
- - A-ABORT APDU - ABRT
- 64 80 {10 - [APPLICATION 4] identifies ABRT
- 80 01 01 - [0] value 1 is acse-service-provider
- -- the user information field may or may not be required
- ?BE 80 {11 - [30] IMPLICIT SEQUENCE
- ?08 80 {12 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- -- (according to CULR-1)
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
-
- Expires 17 April 1994 [Page 23]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- ?00 00 }12 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }11 - end of user information field
- 00 00 }10 - end of ABRT
- 00 00 }9 - end of single asn.1-type
- 00 00 }8 - end of PDV-list
- 00 00 }7 - end of Presentation user-data
- 00 00 }3 - end of ARU-PPDU
- . . }2 - end of session user-data
- . . }1 - end of ABORT SPDU
-
-
- 6.8. Provider abort
-
- Generated when an internal error occurs (i.e. something has gone
- mildly (?) wrong in the cookbook implementation). Rather than accuse
- anyone of protocol errors, we just abort at session.
-
- ABORT SPDU
- 19 03 {1 - SI=25 = ABORT SPDU
- 11 01 09 - Transport Disconnect PV, code 17
- -- value = '...01001'b release T-conn
- -- no reason
- * Ls ?
- . . }1
-
- 6.9. Abort accept
-
- If a Session abort (of any kind) is sent, it is possible that the far-
- end will send back an abort accept. If this happens, disconnect the
- transport. (The abort messages above do not propose that the transport
- connection be reused, and in this case, an abort accept is just the
- far-end passing the transport-disconnect initiative back.) This
- session message need never be sent - just disconnect transport on
- receiving an abort.
-
- ABORT ACCEPT SPDU
- 1A 00 . - SI=26 = ABORT ACCEPT SPDU, no parameters
-
-
- 7. References
-
- [CULR-1] Working draft 13 of Common upper layer requirements - Part 1
- : basic connection-oriented requirements; EWOS. (A later draft will be
- proposed as ISP 11188/1)
-
- [CULR-3] Draft of Common Upper-layer requirements - Part 3: Minimal
- OSI upper layers facilities (A later draft will be proposed as ISP
- 11188/3)
-
- [ISO8072] Information processing systems - Open Systems
- Interconnection - Transport service definition; ISO, 1986.
-
-
-
- Expires 17 April 1994 [Page 24]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- [ISO8073] Information processing systems - Open Systems
- Interconnection - Transport protocol specification; ISO, 1986.
-
- [ISO8326] Information processing systems - Open Systems
- Interconnection - Basic connection oriented session service
- definition; ISO, 1987. (or review copy of revised text = ISO/IEC
- JTC1/SC21 N4657, April 1990)
-
- [ISO8327] Information processing systems - Open Systems
- Interconnection - Basic connection oriented session protocol
- specification; ISO, 1987. (or review copy of revised text = ISO/IEC
- JTC1/SC21 N4656, April 1990)
-
- [ISO8649] Information processing systems - Open Systems
- Interconnection - Service definition for the Association Control
- Service Element; ISO, 1989
-
- [ISO8650] Information processing systems - Open Systems
- Interconnection - Protocol specification for the Association Control
- Service Element; ISO, 1989
-
- [ISO8822] Information processing systems - Open Systems
- Interconnection - Connection-oriented presentation service definition;
- ISO, 1989
-
- [ISO8823] Information processing systems - Open Systems
- Interconnection - Connection-oriented presentation protocol
- specification; ISO, 1989
-
- [ISO8824] Information technology - Open Systems Interconnection -
- Specification of Abstract Syntax Notation One (ASN.1), ISO/IEC 1990
-
- [ISO8825] Information technology - Open Systems Interconnection -
- Specification of Basic Encoding Rules for Abstract Syntax Notation
- One, ISO/IEC 1990
-
- [RFC1006] ISO transport services on top of the TCP; Rose M.T, Cass
- D.E, 1987
-
- [ISO9594] Information technology - Open Systems Interconnection - The
- Directory; ISO/IEC, 1990
-
- [RFC 1274] The Internet and Cosine Schema; Kille, S.H., 1992
-
-
-
-
- 8. Other notes
-
- The Session, Presentation and ACSE standards have been the subject of
- considerable amendment since their first publication. The only one
- that is significant to this cookbook is Session addendum 2, which
- specifies session version 2 and unlimited user data. There are plans
- to produce new editions of these standards, incorporating all the
- amendments, published in early 1994.
-
- Expires 17 April 1994 [Page 25]
-
-
-
- INTERNET DRAFT ThinOSI upper-layers cookbook October 1993
-
-
-
- The coding choices made in the cookbook are (nearly) those made by the
- "Canonical Encoding Rules", which are a form of Basic Encoding Rules
- with no optionality, specified in an amendment to ISO/IEC 8825
- (currently a new part of 8825 at Draft International Standard status,
- but likely to be folded into a new edition of 8825). A defect report
- has been proposed against Presentation and ACSE, suggesting that a
- note to the protocol specifications recommend use of the canonical
- encoding options when sending, and then optimising for this on
- receipt.
-
-
- 9. Author's Address
-
- Peter Furniss
- Peter Furniss Consultants
- 58 Alexandra Crescent
- Bromley, Kent BR1 4EX
- UK
-
- Phone & fax +44 81 313 1833
-
- Email: P.Furniss@ulcc.ac.uk
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Expires 17 April 1994 [Page 26]
-
-